package com.tanhua.dubbo.api;

import com.tanhua.dubbo.pojo.Report;
import com.tanhua.dubbo.pojo.SimpleReport;
import com.tanhua.dubbo.pojo.SoulQuestions;

import java.util.List;


public interface TestSoulApi {

    /**
     * 查询测灵魂的试题
     * @param questionLevel 等级：2初级，3中级，5高级
     * @return 试题集合
     */
    List<SoulQuestions> querySoulQuestions(Integer questionLevel);

    /**
     * 查询用户答题状态
     * @param userId 用户userId
     * @return 状态数组{0,1,1} 分别为初、中、高级答题状态，0代表可作答，1代表不可作答
     */
    Integer[] queryUserSoulTestStatus(Long userId);

    /**
     * 查询报告by报告id
     * @param reportId
     * @return
     */
    Report queryReportByReportId(String reportId);

    /**
     * 更新报告表中的”与你相似“字段
     * @param reportId
     * @param userId
     * @param logo
     */
    void updateReportInSimilarYou(String reportId, Long userId, String logo);

    /**
     * 更新用户答题状态表
     * @param userId
     * @param status
     */
    void updateUserSoulTestStatus(Long userId, Integer[] status);

    /**
     * 查询报告通过userId
     * @param userId
     * @return
     */
    Report queryReportByUserId(Long userId);

    /**
     * 将简单信息存到report-user关系表中
     * @param userId
     * @param reportId
     * @param value
     */
    void upsertSimpleReport(Long userId, String reportId, Integer value);

    /**
     * 通过userId和问卷等级查询报告
     * @param userId
     * @param value
     * @return
     */
    SimpleReport querySimpleReport(Long userId, Integer value);
}
